Searchable attributes (Algolia)
GPT-4.icon
Algoliaにおける Searchable Attributes 解説
そもそも「Searchable Attributes」とは?
ユーザーが検索できる対象のフィールド(属性)のこと。
でも、何でもかんでも検索対象にすると ノイズ が増えたり、精度が落ちる。
本当に検索に使いたいフィールドだけを指定すると、検索体験が良くなる。
【実例】 何を「検索対象」にすべき?
✔️ 検索対象に「含める」べき属性
商品名 (name)
説明 (description)
ブランド (brand)
本の著者リスト、映画の出演者リストなど
キーワード・タグ (keywords, tags)
SKU(商品コード)やISBN(書籍コード)などの一意の識別子
❌ 検索対象から「除外する」べき属性
表示用だけの情報 → 画像URL (image_url)、ブランドロゴ
価格やスコア → 検索ではなく、ソートや表示に使う
一時的な状態 → "発売前", "プロモーション中" みたいなもの
ランキング用の指標 → "最も売れた", "最も評価が高い" は基本検索対象にしない
【やり方】設定方法
設定は 2パターン あります。
1. ダッシュボードから手動で設定
dashboardのsearch(サイドバー) → configration
https://gyazo.com/2cef0bb9a12f892c9885de1447bef3af
4. Configuration → Searchable attributes に進む
5. Add a Searchable Attribute を押して、検索対象にしたいフィールドを選ぶ
6. 並び順をドラッグして変更できる(上の方が優先度高い)
→ 複数フィールドを同順位にしたい場合は、カンマ区切りで書く(例: title, comments)
2. APIから設定
プログラム的に設定する場合は、setSettings というメソッドを使う。
例(PHPの場合)
code:php
$response = $client->setSettings(
'ALGOLIA_INDEX_NAME',
['searchableAttributes' => [
'title,comments', // 同じ優先度
'ingredients', // 次の優先度
],
],
);
title と comments は同じ優先度
ingredients はその次に重要
【ポイント】並び順の意味
上にある属性ほど、検索結果に与える影響が大きい。
つまり、名前の一致を重視したいなら name を一番上に書くべき。
同じレベルにしたいならカンマでまとめる。